\paragraph{}
En este apartado trataremos de explicar el por qué de las decisiones tomadas en lo que se refiere a los aspectos técnicos del sistema. Estos aspectos a tratar serán las librerías de reproducción de música,librerías para tratamiento de información de las canciones, el uso de XML para la biblioteca y la funcionalidad de la biblioteca como lista de reproducción.

\section{Librerías de reproducción}
\paragraph{}
Debido a que en nuestro reproductor de música hemos tenido en cuenta los formatos MP3 y OGG, teníamos que estudiar varias librerías para tratar desde Java los aspectos básicos de reproducción de canciones.
\paragraph{}
Tuvimos en cuenta varias librerías, entre ellas <<JMF>>, JavaSound, Quicktime for Java, y JLayer. JavaSound fue descartada debido a que actualmente no parecía soportar MP3, básico para nuestra aplicación, se podría solucionar usando otras herramientas junto a ella, pero hacía más complicada la tarea. Por otro lado, Quicktime for Java fue desechada debido a su dependencia en las máquinas con las librerías de Quicktime, lo que complicaría el uso a los clientes de la aplicación. Además, JLayer fue descartada debido a sus escasas funcionalidades, además de que los objetos para reproducirlos tenían que ser creados una y otra vez cada vez que se reprodujese una canción, con lo que era contrario a nuestra idea de aplicación del patrón Singleton.
\paragraph{}
Por tanto, estudiando la librería <<JMF>>, vimos que ofrecía todo aquello que necesitábamos, además de que para el formato OGG, simplemente teníamos que configurar unos aspectos internos de JMF para poder usarlos. Además, se creó un tutorial bastante amplio de esta librería lo que nos ha ayudado a usarla adecuadamente para alcanzar los objetivos.

\section{Librerías de tratamiento de información}
\paragraph{}
En este apartado, queríamos encontrar una librería que nos permitiese trabajar con la información de las canciones, especialmente en lo referido a su extracción, para mostrarla en la interfaz de usuario de la aplicación.
\paragraph{}
Al hacer uso de los formatos OGG y MP3, necesitábamos que la librería trabajase indistintamente con ambos formatos. Encontramos <<JaudioTagger>>, y tras examinarla, vimos con buenos ojos su aplicación a nuestro proyecto.
\paragraph{}
Dicha librería nos permitía trabajar con 30 atributos populares de las canciones, con los formatos requeridos, facilidad de conversión entre etiquetas y además poseía una buena cantidad de ejemplos para su uso. Tras realizar algunos tests para comprobar su correcto funcionamiento,empezamos a utilizarla en TrollingBox.
\section{Uso de XML}
\paragraph{}
En este aspecto, no tuvimos demasiados problemas a la hora de decidirnos por su uso, ya que el cliente lo requería para la aplicación. A pesar de ello, si el cliente no hubiese expuesto nada al respecto, habríamos aprobado igualmente su uso, ya que XML permite construir tu propio lenguaje, lo cual necesitábamos para dar formato a la biblioteca y contenido para cada canción.

\section{Funcionalidad de la biblioteca}
\paragraph{}
En cuanto a la funcionalidad de la biblioteca, decidimos que sirviese a su vez como lista de reproducción por varios sencillos motivos. De cara al cliente, la existencia de una única <<fuente>> de canciones es más agradable para su uso, por su simplicidad. Además, el uso de lista de reproducción y biblioteca por separado no aporta ninguna funcionalidad extra que no se pueda realizar a partir de la existencia de una de ellas. El cliente puede cargar una biblioteca guardada, y a partir de ahí generar su propia lista de reproducción eliminando o añadiendo canciones, reproducirla y posteriormente guardarla si así lo desea. 



